package com.stone.framework.user.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.stone.framework.message.user.LoginInfoReqBody;
import com.stone.framework.message.user.LoginInfoResBody;
import com.stone.framework.message.user.TokenInfoReqBody;
import com.stone.framework.message.user.TokenInfoResBody;
import com.stone.framework.message.user.UserDelReqBody;
import com.stone.framework.message.user.UserPageReqBody;
import com.stone.framework.message.user.UserPageResBody;
import com.stone.framework.message.user.UserPasswordReqBody;
import com.stone.framework.message.user.UserReqBody;
import com.stone.framework.user.entity.User;

public interface UserService {

    LoginInfoResBody queryOne(LoginInfoReqBody reqBody);

    TokenInfoResBody queryTokenInfo(TokenInfoReqBody reqBody);

    IPage<UserPageResBody> queryPage(UserPageReqBody reqBody, Page<User> page);

    void save(UserReqBody reqBody);

    void modify(UserReqBody reqBody);

    void delete(UserDelReqBody reqBody);

    void modifyPassword(UserPasswordReqBody reqBody);

    void modifyPassword(UserPasswordReqBody reqBody, boolean checkPassword);

    void refresh(List<Long> userIdList);

}
